package com.myBase.core.facade.service;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.myBase.common.persistence.Page;
import com.myBase.core.entity.GoldCoinForUserVo;
import com.myBase.core.entity.Goldcoin;
import com.myBase.core.entity.GoldcoinActivitycashpool;
import com.myBase.core.entity.GoldcoinWapper;

public interface EBaiGoldCoinInPutService {

    public Goldcoin get(String id);

    public List<Goldcoin> findList(Goldcoin goldcoin);

    public Page<Goldcoin> findPage(Page<Goldcoin> page, Goldcoin goldcoin);

    public void save(Goldcoin goldcoin);

    public void delete(Goldcoin goldcoin);

    public int ifOnlymark(String goldcoinmark);

    public List<GoldcoinActivitycashpool> getgoldCoinActivity(String branchid);

    public Page<GoldcoinWapper> findGoldCoinPage(Page<GoldcoinWapper> page, GoldcoinWapper goldcoinWapper);

    public String findOfficeCode(String userId);

    public GoldcoinWapper getGoinDetail(String goldcoinid);

    public Page<GoldcoinWapper> getNoDistribution(Page<GoldcoinWapper> page, GoldcoinWapper goldcoinWapper);

    public Goldcoin getGoinDetailedit(String goldcoinid);

    public int checkGoldCoin(String id, String userId, Date date, String goldcoindistributiontotalnumber,
            String goldcoinactivity, String canusecash, String freezecash) throws Exception;

    public int checkBackGoldCoin(String id, String userId, Date date);

    public List<Goldcoin> goldCoinDistributeList(String branchid);

    public Integer goldCoinSumAjax(String goldCoinActivity, String branchId);

    public Integer goldCoinUpdate(Goldcoin goldcoin);

    //从gold_coin表中获取需要结算的列表
    public ArrayList<Goldcoin> getGoldCoinNeedSettlement();

    public Integer updateStstus(Integer id, String subChannel);

    // 改变gold_coin表金币状态为结算状态
    public Integer updateStatus(String status, Integer id);

    public Page<GoldcoinWapper> getDistribution(Page<GoldcoinWapper> page, GoldcoinWapper goldcoinWapper);

    /*
     * 获取需要发放的金币数
     */
    public String getAddGoldCoinNumForUser(int goldcoinId, int ruleId);

    public int goldCoinCancel(String id);

    public Page<GoldCoinForUserVo> goldcoinforusers(Page<GoldCoinForUserVo> page, GoldCoinForUserVo goldCoinForUserVo);

    public int onlyUserCorn(String id);

}
